Narrowing Failure in Functional Logic Programming
نویسندگان
چکیده
Negation as failure is an important language feature within the logic programming paradigm. The natural notion generalizing negation as failure in a functional logic setting is that of finite failure of reduction. In previous works we have shown the interest of using such programming construct when writing functional logic programs, and we have given a logical status to failure by means of proof calculi designed to deduce failures from programs. In this paper we address the problem of the operational mechanism for the execution of functional logic programs using failure. Our main contribution is the proposal of a narrowing relation able to deal with failures, which is constructive in the usual sense of the term in the context of negation, that is, narrowing is able to find substitutions for variables even in presence of failures. As main technical results, we prove correctness and completeness of the narrowing relation with respect to the proof-theoretic semantics.
منابع مشابه
Higher Order Functional Logic Programming A Systematic Development
We develop an e ective model for higher order functional logic programming by re ning higher order narrowing calculi The re nements reduce the high degree of non determinism in narrowing calculi utilizing properties of functional logic programs These include convergent and left linear rewrite rules All re nements can be combined to a narrowing strategy which generalizes call by need as in funct...
متن کاملParallel Graph Narrowing
We investigate graph narrowing as the operational semantics of functional logic programming languages. We mainly show and discuss how weakly needed narrowing as well as parallel narrowing may be extended to graph structures.
متن کاملA Call-by-Need Strategy for Higher-Order Functional-Logic Programming
We present an approach to truely higher order functional logic programming based on higher order narrowing Roughly speaking we model a higher order functional core language by higher order rewriting and extend it by logic variables For the integration of logic programs conditional rules are supported For solving goals in this framework we present a complete calcu lus for higher order conditiona...
متن کاملSpecialization of Functional Logic Programs Based on Needed Narrowing Specialization of Functional Logic Programs Based on Needed Narrowing
Functional logic languages with a complete operational semantics are based on narrowing, a uniication-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal narrowing strategy and the basis of several recent functional logic languages. In this paper, we deene a partial evaluator ...
متن کاملTyped Higher-Order Narrowing without Higher-Order Strategies
We describe a new approach to higher-order narrowing computations in a class of systems suitable for functional logic programming. Our approach is based on a translation of these systems into ordinary (£rst-order) rewrite systems and the subsequent application of conventional narrowing strategies. Our translation is an adaptation to narrowing of Warren’s translation, but unlike similar previous...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002